多项式相乘#include<stdio.h>

来源:百度知道 编辑:UC知道 时间:2024/06/20 15:22:23
每行加注释

多项式采用的是数组形式,以牺牲一定的空间提高程序的运行速度和可行性,在系数大多数不为0时比较实效,当然,若多项式的系数大多数为0,则应采用链式存储更好(注:调试环境是VC++6.0)
算法思想:采用数组形式存储多项式,用数组下标标记多项式的次数,以数组中的对应元素记录系数值,下列程序中采用的是a[0]表示最高次系数,a[n]表示最低次系数,进行乘法运算时,下标相加即为乘积的对应次数,下标和相同则表示为同类项,数组元素相乘则为乘积的系数值。

#include "stdio.h"
#define N 100 //宏定义,为多项式的系数数组开辟空间
static int k=1;//记录多项式的个数
void input(float a[],int na){//多项式a的系数输入,其中na为次数
int i;
printf("请输入多项式P%d(x)的各项系数数(从高次项到低次项,中间缺项则为0):\n",k);
for(i=0;i<=na;i++){//输入各项系数
scanf("%f",&a[i]);
}
while(a[0]==0){//首项系数不为0
printf("首项系数不能为0,请重新输入首项系数:");
scanf("%f",&a[0]);
}
printf("P%d(x)=%0.2f*x^%d",k,a[0],na);
for(i=1;i<na;i++){//打印输入的多项式
if(a[i]!=0)
printf("+%0.2f*x^%d",a[i],na-i);
}
if(a[na]!=0)
printf("+%0.2f",a[na]);
printf("\n");
k++;//自增,记录下个多项式
}

void mul(